<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>星穹铁道代码生成器</title>
    <script src="https://cdn.tailwindcss.com"></script>
    <link href="https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/css/font-awesome.min.css" rel="stylesheet">
    <script>
        tailwind.config = {
            theme: {
                extend: {
                    colors: {
                        primary: '#7E57C2',
                        secondary: '#EC407A',
                        accent: '#4FC3F7',
                        dark: '#1A237E',
                        light: '#F3E5F5',
                        card: '#FFFFFF80',
                    },
                    fontFamily: {
                        anime: ['"Comic Sans MS"', '"Chalkboard SE"', '"Marker Felt"', 'sans-serif'],
                    },
                    animation: {
                        'float': 'float 3s ease-in-out infinite',
                        'pulse-slow': 'pulse 4s cubic-bezier(0.4, 0, 0.6, 1) infinite',
                    },
                    keyframes: {
                        float: {
                            '0%, 100%': {
                                transform: 'translateY(0)'
                            },
                            '50%': {
                                transform: 'translateY(-10px)'
                            },
                        }
                    }
                }
            }
        }
    </script>
    <style type="text/tailwindcss">
        @layer utilities { .content-auto { content-visibility: auto; } .text-shadow { text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3); } /* 删除 .bg-anime 相关内容 */ .glass { backdrop-filter: blur(10px); background-color: rgba(255, 255, 255, 0.7); } .border-glow { box-shadow:
        0 0 10px rgba(126, 87, 194, 0.7); } }
    </style>
</head>

<body id="mainBody" class="min-h-screen font-anime text-dark">
    <div id="announcement" class="fixed inset-0 z-50 flex items-center justify-center p-4">
        <div class="absolute inset-0 bg-black bg-opacity-70"></div>
        <div class="relative glass rounded-2xl p-6 max-w-md w-full border-2 border-primary border-glow animate-float">
            <h3 class="text-2xl font-bold text-primary mb-4 text-center text-shadow">公告</h3>
            <ul class="list-disc pl-5 space-y-2 mb-6">
                <li>所有使用/giveall avatar代码的玩家注意，他可以被/avatar类型覆盖，不用担心重开</li>
                <li>不要生成太过逆天的东西，防止你自己的客户端扛不住</li>
                <li>如果要生成过于逆天的东西，请自行修改</li>
                <li>其他代码生成的那个分页，有些是点击直接生成，无需再按一次 </li>
                <li>本公告只适用苏白的服务器，且只限于3.5-3.6版本，其他服务器请自行测试</li>
                <li>如果有bug，请反馈给我，8.31到9.30要军训，基本没时间，我的邮箱2530455689@qq.com，背景图片是宫叶miyaba老师</li>
            </ul>
            <button id="closeAnnouncement" class="w-full bg-secondary hover:bg-secondary/80 text-white py-2 px-4 rounded-lg transition-all duration-300 transform hover:scale-105">
                我知道了
            </button>
        </div>
    </div>

    <div class="container mx-auto px-4 py-8 max-w-6xl">
        <header class="text-center mb-8">
            <h1 class="text-4xl md:text-5xl font-bold text-primary mb-2 text-shadow animate-pulse-slow">星穹铁道代码生成器</h1>
            <p class="text-lg text-dark/80">有问题一定要反馈啊啊啊啊啊</p>
        </header>

        <div class="glass rounded-xl p-2 mb-6 border border-primary">
            <div class="flex justify-around">
                <button class="tab-btn active flex-1 py-3 rounded-lg font-bold transition-all duration-300" data-tab="relic">
                    <i class="fa fa-shield mr-2"></i>遗器
                </button>
                <button class="tab-btn flex-1 py-3 rounded-lg font-bold transition-all duration-300" data-tab="items">
                    <i class="fa fa-gift mr-2"></i>常用物品
                </button>
                <button class="tab-btn flex-1 py-3 rounded-lg font-bold transition-all duration-300" data-tab="other">
                    <i class="fa fa-code mr-2"></i>其他代码
                </button>
            </div>
        </div>


        <div class="glass rounded-xl p-6 border border-primary min-h-[500px]">
            <div id="relicTab" class="tab-content active">
                <h2 class="text-2xl font-bold text-primary mb-6 text-center">遗器代码生成</h2>

                <div class="grid grid-cols-1 md:grid-cols-2 gap-6">
                    <div>
                        <div class="mb-4">
                            <label class="block mb-2 font-bold">A (类型)</label>
                            <select id="relicA" class="w-full p-2 border border-primary rounded-lg focus:outline-none focus:ring-2 focus:ring-accent">
                                <option value="1">1 - 外圈</option>
                                <option value="3">3 - 内圈</option>
                            </select>
                        </div>

                        <div class="mb-4">
                            <label class="block mb-2 font-bold">BC (遗器种类)</label>
                            <select id="relicBC" class="w-full p-2 border border-primary rounded-lg focus:outline-none focus:ring-2 focus:ring-accent">
                                <!-- 外圈遗器 -->
                                <option value="28">28 - 自匿星芒的隐士</option>
                                <option value="27">27 - 再创天地的救世主</option>
                                <option value="26">26 - 恶海逐波的船长</option>
                                <option value="25">25 - 烈阳惊雷的女武神</option>
                                <option value="24">24 - 哀歌覆国的诗人</option>
                                <option value="23">23 - 凯歌祝捷的英豪</option>
                                <option value="22">22 - 识海迷坠的学者</option>
                                <option value="21">21 - 重循苦旅的司铎</option>
                                <option value="20">20 - 风举云飞的勇烈</option>
                                <option value="19">19 - 荡除蠹灾的铁骑</option>
                                <option value="18">18 - 机心戏梦的钟表匠</option>
                                <option value="17">17 - 死水深潜的先驱</option>
                                <option value="16">16 - 幽锁深牢的系囚</option>
                                <option value="15">15 - 毁烬焚骨的大公</option>
                                <option value="14">14 - 骇域漫游的信使</option>
                                <option value="13">13 - 宝命长存的莳者</option>
                                <option value="12">12 - 盗匪荒漠的废土客</option>
                                <option value="11">11 - 流星追迹的怪盗</option>
                                <option value="10">10 - 晨昏交界的翔鹰</option>
                                <option value="09">09 - 激奏雷电的乐队</option>
                                <option value="08">08 - 繁星璀璨的天才</option>
                                <option value="07">07 - 熔岩锻铸的火匠</option>
                                <option value="06">06 - 戍卫风雪的铁卫</option>
                                <option value="05">05 - 街头出身的拳王</option>
                                <option value="04">04 - 密林卧雪的猎人</option>
                                <option value="03">03 - 净庭教宗的圣骑士</option>
                                <option value="02">02 - 野穗伴行的快枪手</option>
                                <option value="01">01 - 云无留迹的过客</option>
                            </select>
                        </div>

                        <div class="mb-4">
                            <label class="block mb-2 font-bold">D (部位)</label>
                            <select id="relicD" class="w-full p-2 border border-primary rounded-lg focus:outline-none focus:ring-2 focus:ring-accent">
                                <option value="1">1 - 头部</option>
                                <option value="2">2 - 手部</option>
                                <option value="3">3 - 躯干</option>
                                <option value="4">4 - 腿部</option>
                            </select>
                        </div>

                        <div class="mb-4">
                            <label class="block mb-2 font-bold">E (主词条)</label>
                            <select id="relicE" class="w-full p-2 border border-primary rounded-lg focus:outline-none focus:ring-2 focus:ring-accent">
                                <option value="1">1 - 固定生命值</option>
                            </select>
                        </div>
                    </div>

                    <div>
                        <div class="mb-4">
                            <label class="block mb-2 font-bold">遗器效果</label>
                            <div id="relicEffect" class="glass p-3 rounded-lg h-32 overflow-y-auto border border-accent">
                                选择遗器后显示效果
                            </div>
                        </div>

                        <div class="space-y-3">
                            <div>
                                <label class="block mb-1 font-bold">副属性 1</label>
                                <div class="flex gap-2">
                                    <select class="relicF flex-1 p-2 border border-primary rounded-lg focus:outline-none focus:ring-2 focus:ring-accent">
                                        <option value="1">1 - 固定生命值</option>
                                        <option value="2">2 - 固定攻击力</option>
                                        <option value="3">3 - 固定防御值</option>
                                        <option value="4">4 - 生命值百分比</option>
                                        <option value="5">5 - 攻击力百分比</option>
                                        <option value="6">6 - 防御值百分比</option>
                                        <option value="7">7 - 速度</option>
                                        <option value="8">8 - 暴击率</option>
                                        <option value="9">9 - 暴击伤害</option>
                                        <option value="10">10 - 效果命中</option>
                                        <option value="11">11 - 效果抵抗</option>
                                        <option value="12">12 - 击破特攻</option>
                                    </select>
                                    <input type="number" min="1" max="5" value="1" class="relicX w-16 p-2 border border-primary rounded-lg focus:outline-none focus:ring-2 focus:ring-accent">
                                </div>
                            </div>

                            <div>
                                <label class="block mb-1 font-bold">副属性 2</label>
                                <div class="flex gap-2">
                                    <select class="relicF flex-1 p-2 border border-primary rounded-lg focus:outline-none focus:ring-2 focus:ring-accent">
                                        <option value="1">1 - 固定生命值</option>
                                        <option value="2">2 - 固定攻击力</option>
                                        <option value="3">3 - 固定防御值</option>
                                        <option value="4">4 - 生命值百分比</option>
                                        <option value="5">5 - 攻击力百分比</option>
                                        <option value="6">6 - 防御值百分比</option>
                                        <option value="7">7 - 速度</option>
                                        <option value="8">8 - 暴击率</option>
                                        <option value="9">9 - 暴击伤害</option>
                                        <option value="10">10 - 效果命中</option>
                                        <option value="11">11 - 效果抵抗</option>
                                        <option value="12">12 - 击破特攻</option>
                                    </select>
                                    <input type="number" min="1" max="5" value="1" class="relicX w-16 p-2 border border-primary rounded-lg focus:outline-none focus:ring-2 focus:ring-accent">
                                </div>
                            </div>

                            <div>
                                <label class="block mb-1 font-bold">副属性 3</label>
                                <div class="flex gap-2">
                                    <select class="relicF flex-1 p-2 border border-primary rounded-lg focus:outline-none focus:ring-2 focus:ring-accent">
                                        <option value="1">1 - 固定生命值</option>
                                        <option value="2">2 - 固定攻击力</option>
                                        <option value="3">3 - 固定防御值</option>
                                        <option value="4">4 - 生命值百分比</option>
                                        <option value="5">5 - 攻击力百分比</option>
                                        <option value="6">6 - 防御值百分比</option>
                                        <option value="7">7 - 速度</option>
                                        <option value="8">8 - 暴击率</option>
                                        <option value="9">9 - 暴击伤害</option>
                                        <option value="10">10 - 效果命中</option>
                                        <option value="11">11 - 效果抵抗</option>
                                        <option value="12">12 - 击破特攻</option>
                                    </select>
                                    <input type="number" min="1" max="5" value="3" class="relicX w-16 p-2 border border-primary rounded-lg focus:outline-none focus:ring-2 focus:ring-accent">
                                </div>
                            </div>

                            <div>
                                <label class="block mb-1 font-bold">副属性 4</label>
                                <div class="flex gap-2">
                                    <select class="relicF flex-1 p-2 border border-primary rounded-lg focus:outline-none focus:ring-2 focus:ring-accent">
                                        <option value="1">1 - 固定生命值</option>
                                        <option value="2">2 - 固定攻击力</option>
                                        <option value="3">3 - 固定防御值</option>
                                        <option value="4">4 - 生命值百分比</option>
                                        <option value="5">5 - 攻击力百分比</option>
                                        <option value="6">6 - 防御值百分比</option>
                                        <option value="7">7 - 速度</option>
                                        <option value="8">8 - 暴击率</option>
                                        <option value="9">9 - 暴击伤害</option>
                                        <option value="10">10 - 效果命中</option>
                                        <option value="11">11 - 效果抵抗</option>
                                        <option value="12">12 - 击破特攻</option>
                                    </select>
                                    <input type="number" min="1" max="5" value="3" class="relicX w-16 p-2 border border-primary rounded-lg focus:outline-none focus:ring-2 focus:ring-accent">
                                </div>
                            </div>

                            <div class="text-sm text-red-600" id="relicWarning"></div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="mb-6 text-center">
                <button id="generateBtn" class="bg-primary hover:bg-primary/80 text-white py-3 px-8 rounded-full text-lg font-bold transition-all duration-300 transform hover:scale-105 mb-4">
                <i class="fa fa-magic mr-2"></i>生成代码
            </button>
                <div id="resultContainer" class="hidden glass rounded-xl p-4 border border-accent mt-4 relative">
                    <div id="codeResult" class="font-mono bg-dark/80 text-light p-4 rounded-lg break-all"></div>
                    <button id="copyBtn" class="absolute top-4 right-4 bg-accent hover:bg-accent/80 text-dark py-1 px-3 rounded-lg transition-all duration-300">
                    <i class="fa fa-copy mr-1"></i>复制
                </button>
                </div>
            </div>

            <div id="itemsTab" class="tab-content hidden">
                <h2 class="text-2xl font-bold text-primary mb-6 text-center">常用物品代码生成</h2>

                <div class="mb-6">
                    <label class="block mb-2 font-bold">物品类型</label>
                    <select id="itemType" class="w-full p-2 border border-primary rounded-lg focus:outline-none focus:ring-2 focus:ring-accent">
                        <option value="starrail">星魂</option>
                        <option value="lightcone">光锥</option>
                        <option value="other">其他</option>
                    </select>
                </div>

                <div id="starrailSection">
                    <div class="mb-4">
                        <label class="block mb-2 font-bold">选择星魂</label>
                        <select id="starrailId" class="w-full p-2 border border-primary rounded-lg focus:outline-none focus:ring-2 focus:ring-accent h-32 overflow-y-auto">
                            <option value="11001">11001 : 【三月七•存护】的星魂</option>
                            <option value="11002">11002 : 【丹恒】的星魂</option>
                            <option value="11003">11003 : 【姬子】的星魂</option>
                            <option value="11004">11004 : 【瓦尔特】的星魂</option>
                            <option value="11005">11005 : 【卡芙卡】的星魂</option>
                            <option value="11006">11006 : 【银狼】的星魂</option>
                            <option value="11008">11008 : 【阿兰】的星魂</option>
                            <option value="11009">11009 : 【艾丝妲】的星魂</option>
                            <option value="11013">11013 : 【黑塔】的星魂</option>
                            <option value="11014">11014 : 【Saber】的星魂</option>
                            <option value="11015">11015 : 【Archer】的星魂</option>
                            <option value="11101">11101 : 【布洛妮娅】的星魂</option>
                            <option value="11102">11102 : 【希儿】的星魂</option>
                            <option value="11103">11103 : 【希露瓦】的星魂</option>
                            <option value="11104">11104 : 【杰帕德】的星魂</option>
                            <option value="11105">11105 : 【娜塔莎】的星魂</option>
                            <option value="11106">11106 : 【佩拉】的星魂</option>
                            <option value="11107">11107 : 【克拉拉】的星魂</option>
                            <option value="11108">11108 : 【桑博】的星魂</option>
                            <option value="11109">11109 : 【虎克】的星魂</option>
                            <option value="11110">11110 : 【玲可】的星魂</option>
                            <option value="11111">11111 : 【卢卡】的星魂</option>
                            <option value="11112">11112 : 【托帕&账账】的星魂</option>
                            <option value="11201">11201 : 【青雀】的星魂</option>
                            <option value="11202">11202 : 【停云】的星魂</option>
                            <option value="11203">11203 : 【罗刹】的星魂</option>
                            <option value="11204">11204 : 【景元】的星魂</option>
                            <option value="11205">11205 : 【刃】的星魂</option>
                            <option value="11206">11206 : 【素裳】的星魂</option>
                            <option value="11207">11207 : 【驭空】的星魂</option>
                            <option value="11208">11208 : 【符玄】的星魂</option>
                            <option value="11209">11209 : 【彦卿】的星魂</option>
                            <option value="11210">11210 : 【桂乃芬】的星魂</option>
                            <option value="11211">11211 : 【白露】的星魂</option>
                            <option value="11212">11212 : 【镜流】的星魂</option>
                            <option value="11213">11213 : 【丹恒•饮月】的星魂</option>
                            <option value="11214">11214 : 【雪衣】的星魂</option>
                            <option value="11215">11215 : 【寒鸦】的星魂</option>
                            <option value="11217">11217 : 【藿藿】的星魂</option>
                            <option value="11218">11218 : 【椒丘】的星魂</option>
                            <option value="11220">11220 : 【飞霄】的星魂</option>
                            <option value="11221">11221 : 【云璃】的星魂</option>
                            <option value="11222">11222 : 【灵砂】的星魂</option>
                            <option value="11223">11223 : 【貊泽】的星魂</option>
                            <option value="11224">11224 : 【三月七•巡猎】的星魂</option>
                            <option value="11225">11225 : 【忘归人】的星魂</option>
                            <option value="11301">11301 : 【加拉赫】的星魂</option>
                            <option value="11302">11302 : 【银枝】的星魂</option>
                            <option value="11303">11303 : 【阮•梅】的星魂</option>
                            <option value="11304">11304 : 【砂金】的星魂</option>
                            <option value="11305">11305 : 【真理医生】的星魂</option>
                            <option value="11306">11306 : 【花火】的星魂</option>
                            <option value="11307">11307 : 【黑天鹅】的星魂</option>
                            <option value="11308">11308 : 【黄泉】的星魂</option>
                            <option value="11309">11309 : 【知更鸟】的星魂</option>
                            <option value="11310">11310 : 【流萤】的星魂</option>
                            <option value="11312">11312 : 【米沙】的星魂</option>
                            <option value="11313">11313 : 【星期日】的星魂</option>
                            <option value="11314">11314 : 【翡翠】的星魂</option>
                            <option value="11315">11315 : 【波提欧】的星魂</option>
                            <option value="11317">11317 : 【乱破】的星魂</option>
                            <option value="11401">11401 : 【大黑塔】的星魂</option>
                            <option value="11402">11402 : 【阿格莱雅】的星魂</option>
                            <option value="11403">11403 : 【缇宝】的星魂</option>
                            <option value="11404">11404 : 【万敌】的星魂</option>
                            <option value="11405">11405 : 【那刻夏】的星魂</option>
                            <option value="11406">11406 : 【赛飞儿】的星魂</option>
                            <option value="11407">11407 : 【遐蝶】的星魂</option>
                            <option value="11408">11408 : 【白厄】的星魂</option>
                            <option value="11409">11409 : 【风堇】的星魂</option>
                            <option value="11410">11410 : 【海瑟音】的星魂</option>
                            <option value="11412">11412 : 【刻律德菈】的星魂</option>
                            <option value="11413">11413 : 【长夜月】的星魂</option>
                            <option value="11414">11414 : 【丹恒•腾荒】的星魂</option>
                            <option value="18001">18001 : 「毁灭」之影</option>
                            <option value="18002">18002 : 「毁灭」之影</option>
                            <option value="18003">18003 : 「存护」之影</option>
                            <option value="18004">18004 : 「存护」之影</option>
                            <option value="18005">18005 : 「同谐」之影</option>
                            <option value="18006">18006 : 「同谐」之影</option>
                            <option value="18007">18007 : 「记忆」之影</option>
                            <option value="18008">18008 : 「记忆」之影</option>
                        </select>
                    </div>

                    <div class="mb-4">
                        <label class="block mb-2 font-bold">数量</label>
                        <input type="number" id="starrailCount" min="1" max="999" value="1" class="w-full p-2 border border-primary rounded-lg focus:outline-none focus:ring-2 focus:ring-accent">
                    </div>
                </div>

                <div id="lightconeSection" class="hidden">
                    <div class="mb-4">
                        <label class="block mb-2 font-bold">选择光锥</label>
                        <select id="lightconeId" class="w-full p-2 border border-primary rounded-lg focus:outline-none focus:ring-2 focus:ring-accent h-32 overflow-y-auto">
                            <option value="20000">20000: 锋镝</option>
                            <option value="20001">20001: 物穰</option>
                            <option value="20002">20002: 天倾</option>
                            <option value="20003">20003: 琥珀</option>
                            <option value="20004">20004: 幽邃</option>
                            <option value="20005">20005: 齐颂</option>
                            <option value="20006">20006: 智库</option>
                            <option value="20007">20007: 离弦</option>
                            <option value="20008">20008: 嘉果</option>
                            <option value="20009">20009: 乐圮</option>
                            <option value="20010">20010: 戍御</option>
                            <option value="20011">20011: 渊环</option>
                            <option value="20012">20012: 轮契</option>
                            <option value="20013">20013: 灵钥</option>
                            <option value="20014">20014: 相抗</option>
                            <option value="20015">20015: 蕃息</option>
                            <option value="20016">20016: 俱殁</option>
                            <option value="20017">20017: 开疆</option>
                            <option value="20018">20018: 匿影</option>
                            <option value="20019">20019: 调和</option>
                            <option value="20020">20020: 睿见</option>
                            <option value="20021">20021: 焚影</option>
                            <option value="20022">20022: 溯忆</option>
                            <option value="21000">21000: 一场术后对话</option>
                            <option value="21001">21001: 晚安与睡颜</option>
                            <option value="21002">21002: 余生的第一天</option>
                            <option value="21003">21003: 唯有沉默</option>
                            <option value="21004">21004: 记忆中的模样</option>
                            <option value="21005">21005: 鼹鼠党欢迎你</option>
                            <option value="21006">21006: 「我」的诞生</option>
                            <option value="21007">21007: 同一种心情</option>
                            <option value="21008">21008: 猎物的视线</option>
                            <option value="21009">21009: 朗道的选择</option>
                            <option value="21010">21010: 论剑</option>
                            <option value="21011">21011: 与行星相会</option>
                            <option value="21012">21012: 秘密誓心</option>
                            <option value="21013">21013: 别让世界静下来</option>
                            <option value="21014">21014: 此时恰好</option>
                            <option value="21015">21015: 决心如汗珠般闪耀</option>
                            <option value="21016">21016: 宇宙市场趋势</option>
                            <option value="21017">21017: 点个关注吧！</option>
                            <option value="21018">21018: 舞！舞！舞！</option>
                            <option value="21019">21019: 在蓝天下</option>
                            <option value="21020">21020: 天才们的休憩</option>
                            <option value="21021">21021: 等价交换</option>
                            <option value="21022">21022: 延长记号</option>
                            <option value="21023">21023: 我们是地火</option>
                            <option value="21024">21024: 春水初生</option>
                            <option value="21025">21025: 过往未来</option>
                            <option value="21026">21026: 汪！散步时间！</option>
                            <option value="21027">21027: 早餐的仪式感</option>
                            <option value="21028">21028: 暖夜不会漫长</option>
                            <option value="21029">21029: 后会有期</option>
                            <option value="21030">21030: 这就是我啦！</option>
                            <option value="21031">21031: 重返幽冥</option>
                            <option value="21032">21032: 镂月裁云之意</option>
                            <option value="21033">21033: 无处可逃</option>
                            <option value="21034">21034: 今日亦是和平的一日</option>
                            <option value="21035">21035: 何物为真</option>
                            <option value="21036">21036: 美梦小镇大冒险</option>
                            <option value="21037">21037: 最后的赢家</option>
                            <option value="21038">21038: 在火的远处</option>
                            <option value="21039">21039: 织造命运之线</option>
                            <option value="21040">21040: 银河沦陷日</option>
                            <option value="21041">21041: 好戏开演</option>
                            <option value="21042">21042: 铭记于心的约定</option>
                            <option value="21043">21043: 两个人的演唱会</option>
                            <option value="21044">21044: 无边曼舞</option>
                            <option value="21045">21045: 谐乐静默之后</option>
                            <option value="21046">21046: 芳华待灼</option>
                            <option value="21047">21047: 黑夜如影随行</option>
                            <option value="21048">21048: 梦的蒙太奇</option>
                            <option value="21050">21050: 胜利只在朝夕间</option>
                            <option value="21051">21051: 天才们的问候</option>
                            <option value="21052">21052: 多流汗，少流泪</option>
                            <option value="21053">21053: 愿旅途永远坦然</option>
                            <option value="21054">21054: 故事的下一页</option>
                            <option value="21055">21055: 直到明天的明天</option>
                            <option value="21056">21056: 追逐风的时候</option>
                            <option value="21057">21057: 花儿不会忘记</option>
                            <option value="21058">21058: 一行往日的血</option>
                            <option value="21060">21060: 氤氲麦香的梦</option>
                            <option value="21061">21061: 假日浴场大冒险</option>
                            <option value="21062">21062: 于那终点再见</option>
                            <option value="22000">22000: 新手任务开始前</option>
                            <option value="22001">22001: 嘿，我在这儿</option>
                            <option value="22002">22002: 为了明日的旅途</option>
                            <option value="22003">22003: 忍事录?音律狩猎</option>
                            <option value="22004">22004: 宇宙大生意</option>
                            <option value="23000">23000: 银河铁道之夜（姬子）</option>
                            <option value="23001">23001: 于夜色中（希儿）</option>
                            <option value="23002">23002: 无可取代的东西（克拉拉）</option>
                            <option value="23003">23003: 但战斗还未结束（鸭鸭）</option>
                            <option value="23004">23004: 以世界之名（瓦尔特）</option>
                            <option value="23005">23005: 制胜的瞬间（杰帕德）</option>
                            <option value="23006">23006: 只需等待（卡夫卡）</option>
                            <option value="23007">23007: 雨一直下（银狼）</option>
                            <option value="23008">23008: 棺的回响（罗刹）</option>
                            <option value="23009">23009: 到不了的彼岸（刃）</option>
                            <option value="23010">23010: 拂晓之前（景元）</option>
                            <option value="23011">23011: 她已闭上双眼（符玄）</option>
                            <option value="23012">23012: 如泥酣眠（彦卿）</option>
                            <option value="23013">23013: 时节不居（白露）</option>
                            <option value="23014">23014: 此身为剑（镜流）</option>
                            <option value="23015">23015: 比阳光更明亮的（饮月）</option>
                            <option value="23016">23016: 烦恼着，幸福着（托帕）</option>
                            <option value="23017">23017: 惊魂夜（藿藿）</option>
                            <option value="23018">23018: 片刻，留在眼底（银枝）</option>
                            <option value="23019">23019: 镜中故我（阮梅）</option>
                            <option value="23020">23020: 纯粹思维的洗礼（真理）</option>
                            <option value="23021">23021: 游戏尘寰（花火）</option>
                            <option value="23022">23022: 重塑时光之忆（黑天鹅）</option>
                            <option value="23023">23023: 命运从未公平（砂金）</option>
                            <option value="23024">23024: 行于流逝的岸（黄泉）</option>
                            <option value="23025">23025: 梦应归于何处（流萤）</option>
                            <option value="23026">23026: 夜色流光溢彩（知更鸟）</option>
                            <option value="23027">23027: 驶向第二次生命（波迪欧）</option>
                            <option value="23028">23028: 偏偏希望无价（翡翠）</option>
                            <option value="23029">23029: 那无数个春天（椒丘）</option>
                            <option value="23030">23030: 落日时起舞（云璃）</option>
                            <option value="23031">23031: 我将，巡征追猎（飞霄）</option>
                            <option value="23032">23032: 唯有香如故（灵砂）</option>
                            <option value="23033">23033: 忍法帖?缭乱破魔（乱破）</option>
                            <option value="23034">23034: 回到大地的飞行（星期日）</option>
                            <option value="23035">23035: 长路终有归途（忘归人）</option>
                            <option value="23036">23036: 将光阴织成黄金（阿格莱亚）</option>
                            <option value="23037">23037: 向着不可追问处（大黑塔）</option>
                            <option value="23038">23038: 如果时间是一朵花（缇宝）</option>
                            <option value="23039">23039: 血火啊，燃烧前路（万敌）</option>
                            <option value="23040">23040: 让告别，更美一些（遐蝶）</option>
                            <option value="23041">23041: 生命当付之一炬（阿那可道格纳斯）</option>
                            <option value="23042">23042: 愿虹光永驻天空（风堇）</option>
                            <option value="23043">23043: 谎言在风中飘扬（赛飞儿）</option>
                            <option value="23044">23044: 黎明恰如此燃烧（白厄）</option>
                            <option value="23045">23045: 没有回报的加冕（saber阿尔托莉雅）</option>
                            <option value="23046">23046: 理想燃烧的地狱（红A）</option>
                            <option value="23047">23047: 海洋为何而歌（海瑟音）</option>
                            <option value="23048">23048: 金血铭刻的时代（刻律）</option>
                            <option value="23049">23049: 至长夜的星光（长夜月）</option>
                            <option value="23051">23051: 纵然山河万程（腾荒）</option>
                            <option value="24000">24000: 记一位星神的陨落</option>
                            <option value="24001">24001: 星海巡航</option>
                            <option value="24002">24002: 记忆的质料</option>
                            <option value="24003">24003: 孤独的疗愈</option>
                            <option value="24004">24004: 不息的演算</option>
                            <option value="24005">24005: 记忆永不落幕</option>
                        </select>
                    </div>

                    <div class="grid grid-cols-1 md:grid-cols-3 gap-4">
                        <div>
                            <label class="block mb-2 font-bold">等级 (1-80)</label>
                            <input type="number" id="lightconeLevel" min="1" max="80" value="80" class="w-full p-2 border border-primary rounded-lg focus:outline-none focus:ring-2 focus:ring-accent">
                        </div>
                        <div>
                            <label class="block mb-2 font-bold">个数 (1-5)</label>
                            <input type="number" id="lightconeCount" min="1" max="5" value="1" class="w-full p-2 border border-primary rounded-lg focus:outline-none focus:ring-2 focus:ring-accent">
                        </div>
                        <div>
                            <label class="block mb-2 font-bold">叠影等级 (1-5)</label>
                            <input type="number" id="lightconeRank" min="1" max="5" value="5" class="w-full p-2 border border-primary rounded-lg focus:outline-none focus:ring-2 focus:ring-accent">
                        </div>
                    </div>
                </div>

                <div id="otherItemsSection" class="hidden">
                    <div class="mb-4">
                        <label class="block mb-2 font-bold">选择物品</label>
                        <select id="otherItemId" class="w-full p-2 border border-primary rounded-lg focus:outline-none focus:ring-2 focus:ring-accent">
                            <option value="1">1: 星琼</option>
                            <option value="2">2: 信用点</option>
                            <option value="3">3: 古老梦华</option>
                            <option value="11">11: 开拓力</option>
                            <option value="22">22: 里程</option>
                            <option value="101">101: 星轨通票</option>
                            <option value="102">102: 星轨专票</option>
                            <option value="236">236: 自塑尘脂</option>
                            <option value="238">238: 变量骰子</option>
                            <option value="239">239: 干涉密钥（3.6）</option>
                            <option value="281">281: 旅伴金灵</option>
                            <option value="283">283: 光锥碎忆</option>
                        </select>
                    </div>

                    <div class="mb-4">
                        <label class="block mb-2 font-bold">数量</label>
                        <input type="number" id="otherItemCount" min="1" max="99999" value="1000" class="w-full p-2 border border-primary rounded-lg focus:outline-none focus:ring-2 focus:ring-accent">
                    </div>
                </div>
            </div>

            <div id="otherTab" class="tab-content hidden">
                <h2 class="text-2xl font-bold text-primary mb-6 text-center">其他代码生成</h2>

                <div class="space-y-6">
                    <div class="glass p-4 rounded-xl border border-accent">
                        <h3 class="text-xl font-bold mb-3">切换主角命途</h3>
                        <p class="text-sm mb-3 text-dark/70">备注：如果未成功显示，重启游戏</p>
                        <div class="grid grid-cols-1 md:grid-cols-3 gap-3">
                            <button class="other-code-btn py-2 px-4 border border-primary rounded-lg hover:bg-primary hover:text-white transition-colors" data-code="/hero type 8007">记忆主</button>
                            <button class="other-code-btn py-2 px-4 border border-primary rounded-lg hover:bg-primary hover:text-white transition-colors" data-code="/hero type 8005">同谐主</button>
                            <button class="other-code-btn py-2 px-4 border border-primary rounded-lg hover:bg-primary hover:text-white transition-colors" data-code="/hero type 8003">存护主</button>
                            <button class="other-code-btn py-2 px-4 border border-primary rounded-lg hover:bg-primary hover:text-white transition-colors" data-code="/hero type 8001">毁灭主</button>
                            <button class="other-code-btn py-2 px-4 border border-primary rounded-lg hover:bg-primary hover:text-white transition-colors" data-code="/hero type 8009">欢愉主（4.0）</button>
                        </div>
                    </div>

                    <div class="glass p-4 rounded-xl border border-accent">
                        <h3 class="text-xl font-bold mb-3">获取或调整角色</h3>
                        <div class="grid grid-cols-1 md:grid-cols-2 gap-4">
                            <div>
                                <label class="block mb-2 font-bold">角色ID</label>
                                <select id="avatarId" class="w-full p-2 border border-primary rounded-lg focus:outline-none focus:ring-2 focus:ring-accent h-32 overflow-y-auto">
                                    <option value="-1">-1 : 所以已拥有角色</option>
                                    <option value="1001">1001 : 三月七</option>
                                    <option value="1002">1002 : 丹恒</option>
                                    <option value="1003">1003 : 姬子</option>
                                    <option value="1004">1004 : 瓦尔特</option>
                                    <option value="1005">1005 : 卡芙卡</option>
                                    <option value="1006">1006 : 银狼</option>
                                    <option value="1008">1008 : 阿兰</option>
                                    <option value="1009">1009 : 艾丝妲</option>
                                    <option value="1013">1013 : 黑塔</option>
                                    <option value="1014">1014 : Saber</option>
                                    <option value="1015">1015 : Archer</option>
                                    <option value="1101">1101 : 布洛妮娅</option>
                                    <option value="1102">1102 : 希儿</option>
                                    <option value="1103">1103 : 希露瓦</option>
                                    <option value="1104">1104 : 杰帕德</option>
                                    <option value="1105">1105 : 娜塔莎</option>
                                    <option value="1106">1106 : 佩拉</option>
                                    <option value="1107">1107 : 克拉拉</option>
                                    <option value="1108">1108 : 桑博</option>
                                    <option value="1109">1109 : 虎克</option>
                                    <option value="1110">1110 : 玲可</option>
                                    <option value="1111">1111 : 卢卡</option>
                                    <option value="1112">1112 : 托帕&账账</option>
                                    <option value="1201">1201 : 青雀</option>
                                    <option value="1202">1202 : 停云</option>
                                    <option value="1203">1203 : 罗刹</option>
                                    <option value="1204">1204 : 景元</option>
                                    <option value="1205">1205 : 刃</option>
                                    <option value="1206">1206 : 素裳</option>
                                    <option value="1207">1207 : 驭空</option>
                                    <option value="1208">1208 : 符玄</option>
                                    <option value="1209">1209 : 彦卿</option>
                                    <option value="1210">1210 : 桂乃芬</option>
                                    <option value="1211">1211 : 白露</option>
                                    <option value="1212">1212 : 镜流</option>
                                    <option value="1213">1213 : 丹恒•饮月</option>
                                    <option value="1214">1214 : 雪衣</option>
                                    <option value="1215">1215 : 寒鸦</option>
                                    <option value="1217">1217 : 藿藿</option>
                                    <option value="1218">1218 : 椒丘</option>
                                    <option value="1220">1220 : 飞霄</option>
                                    <option value="1221">1221 : 云璃</option>
                                    <option value="1222">1222 : 灵砂</option>
                                    <option value="1223">1223 : 貊泽</option>
                                    <option value="1224">1224 : 三月七</option>
                                    <option value="1225">1225 : 忘归人</option>
                                    <option value="1301">1301 : 加拉赫</option>
                                    <option value="1302">1302 : 银枝</option>
                                    <option value="1303">1303 : 阮•梅</option>
                                    <option value="1304">1304 : 砂金</option>
                                    <option value="1305">1305 : 真理医生</option>
                                    <option value="1306">1306 : 花火</option>
                                    <option value="1307">1307 : 黑天鹅</option>
                                    <option value="1308">1308 : 黄泉</option>
                                    <option value="1309">1309 : 知更鸟</option>
                                    <option value="1310">1310 : 流萤</option>
                                    <option value="1312">1312 : 米沙</option>
                                    <option value="1313">1313 : 星期日</option>
                                    <option value="1314">1314 : 翡翠</option>
                                    <option value="1315">1315 : 波提欧</option>
                                    <option value="1317">1317 : 乱破</option>
                                    <option value="1401">1401 : 大黑塔</option>
                                    <option value="1402">1402 : 阿格莱雅</option>
                                    <option value="1403">1403 : 缇宝</option>
                                    <option value="1404">1404 : 万敌</option>
                                    <option value="1405">1405 : 那刻夏</option>
                                    <option value="1406">1406 : 赛飞儿</option>
                                    <option value="1407">1407 : 遐蝶</option>
                                    <option value="1408">1408 : 白厄</option>
                                    <option value="1409">1409 : 风堇</option>
                                    <option value="1410">1410 : 海瑟音</option>
                                    <option value="1412">1412 : 刻律德菈</option>
                                    <option value="1413">1413 : 长夜月</option>
                                    <option value="1414">1414 : 丹恒•腾荒</option>
                                    <option value="8007">8007 : 记忆主</option>
                                    <option value="8005">8005 : 同谐主</option>
                                    <option value="8003">8003 : 存护主</option>
                                    <option value="8001">8001 : 毁灭主</option>
                                    <option value="8009">8009 : 欢愉主（4.0）</option>
                                </select>
                            </div>

                            <div class="flex flex-col justify-between">
                                <div class="mb-4">
                                    <label class="block mb-2 font-bold">调整类型</label>
                                    <select id="avatarAction" class="w-full p-2 border border-primary rounded-lg focus:outline-none focus:ring-2 focus:ring-accent">
                                        <option value="get">获取 (get)</option>
                                        <option value="level">等级 (level)</option>
                                        <option value="rank">星魂 (rank)</option>
                                        <option value="talent">行迹 (talent)</option>
                                    </select>
                                </div>

                                <div id="avatarValueContainer" class="hidden mb-4">
                                    <label class="block mb-2 font-bold" id="avatarValueLabel">等级 (1-80)</label>
                                    <input type="number" id="avatarValue" min="1" max="80" value="80" class="w-full p-2 border border-primary rounded-lg focus:outline-none focus:ring-2 focus:ring-accent">
                                </div>

                                <button id="generateAvatarCode" class="mt-auto bg-secondary hover:bg-secondary/80 text-white py-2 px-4 rounded-lg transition-all duration-300">
                                    生成角色代码
                                </button>
                            </div>
                        </div>
                    </div>

                    <div class="glass p-4 rounded-xl border border-accent">
                        <h3 class="text-xl font-bold mb-3">更多其他代码</h3>
                        <div class="grid grid-cols-1 md:grid-cols-2 gap-3">
                            <button class="other-code-btn py-2 px-4 border border-primary rounded-lg hover:bg-primary hover:text-white transition-colors" data-code="/giveall equipment r1 l80 x1">获取全部叠影1光锥</button>
                            <button class="other-code-btn py-2 px-4 border border-primary rounded-lg hover:bg-primary hover:text-white transition-colors" data-code="/giveall equipment r5 l80 x1">获取全部叠影5光锥</button>
                            <button class="other-code-btn py-2 px-4 border border-primary rounded-lg hover:bg-primary hover:text-white transition-colors" data-code="/mission pass">跳过当前已接剧情</button>
                            <button class="other-code-btn py-2 px-4 border border-primary rounded-lg hover:bg-primary hover:text-white transition-colors" data-code="/unlockall mission">跳过全部剧情</button>
                            <button class="other-code-btn py-2 px-4 border border-primary rounded-lg hover:bg-primary hover:text-white transition-colors" data-code="/clear relic">清除未锁遗器（慎用）</button>
                            <button class="other-code-btn py-2 px-4 border border-primary rounded-lg hover:bg-primary hover:text-white transition-colors" data-code="/giveall avatar r6 l80">获取全角色满命满级</button>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <footer class="text-center py-4 mt-8 text-light text-shadow">
        <p>星穹铁道代码生成器 &copy; 2025.8</p>
    </footer>

    <script>
        const backgroundImages = [
            './pictures/叶子1.png',
            './pictures/叶子2.jpg',
            './pictures/叶子3.jpeg',
            './pictures/叶子4.jpeg',
            './pictures/叶子5.jpeg'
        ];

        document.addEventListener('DOMContentLoaded', function() {
            const randomImage = backgroundImages[Math.floor(Math.random() * backgroundImages.length)];
            document.getElementById('mainBody').style.backgroundImage = `url('${randomImage}')`;
            document.getElementById('mainBody').style.backgroundSize = 'cover';
            document.getElementById('mainBody').style.backgroundPosition = 'center';
        });
        const relicEffects = {
            // 外圈遗器
            "128": "自匿星芒的隐士\n2P: 提供的护盾量提高 10%\n4P: 使装备者提供的护盾量提高 12%，我方目标持有装备者提供的护盾时，暴击伤害提高 15%",
            "127": "再创天地的救世主\n2P: 暴击率提高 8%\n4P: 装备者施放普攻或战技后，若装备者的忆灵在场，使装备者及其忆灵生命上限提高 24%，我方全体造成的伤害提高 15%，持续至装备者下次施放普攻或战技后",
            "126": "恶海逐波的船长\n2P: 暴击伤害提高 16%\n4P: 装备者成为其他我方目标的技能目标时，获得1层【助力】，最多叠加 2 层。施放终结技时，若持有 2 层【助力】，消耗所有【助力】，使装备者攻击力提高 48%，持续 1 回合",
            "125": "烈阳惊雷的女武神\n2P: 速度提高 6%\n4P: 当装备者及其忆灵为装备者及其忆灵以外的我方目标提供治疗后，使装备者获得【甘霖】，每回合最多触发1次，持续 2 回合。装备者持有【甘霖】时，速度提高 6%，我方全体暴击伤害提高 15%，该效果无法叠加",
            "124": "哀歌覆国的诗人\n2P: 量子属性伤害提高 10%\n4P: 使装备者的速度降低 8%。进入战斗前，若装备者的速度小于 110 / 95 ，使装备者的暴击率提高 20% / 32%。该效果同时对装备者的忆灵生效",
            "123": "凯歌祝捷的英豪\n2P: 攻击力提高 12%\n4P: 装备者的忆灵在场时，装备者的速度提高 6%，装备者的忆灵攻击时，装备者和忆灵的暴击伤害提高 30%，持续 2 回合",
            "122": "识海迷坠的学者\n2P: 暴击率提高 8%\n4P: 战技和终结技造成的伤害提高 20%，施放终结技后，下一次施放战技时造成的伤害额外提高 25%",
            "121": "重循苦旅的司铎\n2P: 速度提高 6%\n4P: 对我方单体目标施放战技或终结技时，使技能目标的暴击伤害提高 18%，持续 2 回合，该效果最多叠加 2 次",
            "120": "风举云飞的勇烈\n2P: 攻击力提高 12%\n4P: 使装备者的暴击率提高 6%，装备者施放追加攻击时，使终结技造成的伤害提高 36%，持续 1 回合",
            "119": "荡除蠹灾的铁骑\n2P: 击破特攻提高 16%\n4P: 当装备者的击破特攻大于等于 150% 时，对敌方目标造成的击破伤害无视其 10% 的防御力。当装备者的击破特攻大于等于 250% 时，对敌方目标造成的超击破伤害额外无视其 15% 的防御力",
            "118": "机心戏梦的钟表匠\n2P: 击破特攻提高 16%\n4P: 当装备者对我方目标施放终结技时，我方全体击破特攻提高 30%，持续 2 回合，该效果无法叠加",
            "117": "死水深潜的先驱\n2P: 对受负面状态影响的敌人造成的伤害提高 12%\n4P: 暴击率提高 4%，装备者对陷入不少于 2 / 3 个负面效果的敌方目标造成的暴击伤害提高 8% / 12%。装备者对敌方目标施加负面效果后，上述效果提高 100%，持续 1 回合",
            "116": "幽锁深牢的系囚\n2P: 攻击力提高 12%\n4P: 敌方目标每承受1个持续伤害效果，装备者对其造成伤害时就无视其 6% 的防御力，最多计入 3 个持续伤害效果",
            "115": "毁烬焚骨的大公\n2P: 追加攻击造成的伤害提高 20%\n4P: 装备者施放追加攻击时，根据追加攻击造成伤害的次数，每次造成伤害时使装备者的攻击力提高 6%，最多叠加 8 次，持续 3 回合。该效果在装备者下一次施放追加攻击时移除",
            "114": "骇域漫游的信使\n2P: 速度提高 6%\n4P: 当装备者对我方目标施放终结技时，我方全体速度提高 12%，持续 1 回合，该效果无法叠加",
            "113": "宝命长存的莳者\n2P: 生命上限提高 12%\n4P: 当装备者受到攻击或被我方目标消耗生命值后，暴击率提高 8%，持续 2 回合，该效果最多叠加 2 层",
            "112": "盗匪荒漠的废土客\n2P: 虚数属性伤害提高 10%\n4P: 装备者对陷入负面效果的敌方目标造成伤害时暴击率提高 10%，对陷入禁锢状态的敌方目标造成伤害时暴击伤害提高 20%",
            "111": "流星追迹的怪盗\n2P: 击破特攻提高 16%\n4P: 使装备者的击破特攻提高 16%。当装备者击破敌方目标弱点后，恢复 3 点能量",
            "110": "晨昏交界的翔鹰\n2P: 风属性伤害提高 10%\n4P: 当装备者施放终结技后，使其行动提前 25%",
            "109": "激奏雷电的乐队\n2P: 雷属性伤害提高 10%\n4P: 当装备者施放战技时，使装备者的攻击力提高 20%，持续 1 回合",
            "108": "繁星璀璨的天才\n2P: 量子属性伤害提高 10%\n4P: 当装备者对敌方目标造成伤害时，无视其 10% 的防御力。若目标拥有量子属性弱点，额外无视其 10% 的防御力",
            "107": "熔岩锻铸的火匠\n2P: 火属性伤害提高 10%\n4P: 使装备者战技造成的伤害提高 12%，并使施放终结技后的下一次攻击造成的火属性伤害提高 12%",
            "106": "戍卫风雪的铁卫\n2P: 受到伤害降低 8%\n4P: 回合开始时，如果装备者当前生命值百分比小于等于 50%，则回复等同于自身生命上限 8% 的生命值，并恢复 5 点能量",
            "105": "街头出身的拳王\n2P: 物理属性伤害提高 10%\n4P: 当装备者施放攻击或受到攻击后，其在本场战斗中攻击力提高 5%，最多叠加 5 层",
            "104": "密林卧雪的猎人\n2P: 冰属性伤害提高 10%\n4P: 当装备者施放终结技时，暴击伤害提高 25%，持续 2 回合",
            "103": "净庭教宗的圣骑士\n2P: 防御力提高 15%\n4P: 使装备者提供的护盾量提高 20%",
            "102": "野穗伴行的快枪手\n2P: 攻击力提高 12%\n4P: 使装备者的速度提高 6%，普攻造成的伤害提高 10%",
            "101": "云无留迹的过客\n2P: 治疗量提高 10%\n4P: 在战斗开始时，立即为我方恢复1个战技点",

            // 内圈遗器
            "322": "沉欢醉饮的海隅\n2P: 使装备者的攻击力提高 12%。当装备者的攻击力大于等于 2400 / 3600 时，使造成的持续伤害额外提高 12% / 24%",
            "321": "妖精织梦的乐园\n2P: 队伍中当前在场的我方目标数量不等于4时，每多/少1名我方目标，使装备者及其忆灵造成的伤害提高 9% / 12%，最多叠加 4 / 3 层",
            "320": "渊思寂虑的巨树\n2P: 使装备者的速度提高 6%。当装备者的速度大于等于 135 / 180 时，使装备者及其忆灵的治疗量提高 12% / 20%",
            "319": "谧宁拾骨地\n2P: 使装备者的生命上限提高 12%。当装备者的生命上限大于等于 5000 点时，使装备者及其忆灵的暴击伤害提高 28%",
            "318": "奇想蕉乐园\n2P: 使装备者的暴击伤害提高 16%，当存在装备者召唤的目标时，暴击伤害额外提高 32%",
            "317": "沉陆海域露莎卡\n2P: 使装备者的能量恢复效率提高 5%，如果装备者不是编队中的第一位角色，使编队中的第一位角色攻击力提高 12%",
            "316": "劫火莲灯铸炼宫\n2P: 使装备者的速度提高 6%。当装备者击中拥有火属性弱点的敌方目标时，击破特攻提高 40%，持续 1 回合",
            "315": "奔狼的都蓝王朝\n2P: 我方角色施放追加攻击时，装备者获得一层【功勋】，最多叠加 5 层，每层【功勋】使装备者追加攻击造成的伤害提高 5%，叠满 5 层时，额外使装备者的暴击伤害提高 25%",
            "314": "出云显世与高天神国\n2P: 使装备者的攻击力提高 12%。进入战斗时，若至少存在一名与装备者命途相同的队友，装备者的暴击率提高 12%",
            "313": "无主荒星茨冈尼亚\n2P: 使装备者的暴击率提高 4%。当敌方目标被消灭时，装备者暴击伤害提高 4%，最多叠加 10 层",
            "312": "梦想之地匹诺康尼\n2P: 使装备者的能量恢复效率提高 5%。使队伍中与装备者属性相同的我方其他角色造成的伤害提高 10%",
            "311": "苍穹战线格拉默\n2P: 使装备者的攻击力提高 12%。当装备者的速度大于等于 135 / 160 时，使装备者造成的伤害提高 12% / 18%",
            "310": "折断的龙骨\n2P: 使装备者的效果抵抗提高 10%。当装备者的效果抵抗大于等于 30% 时，我方全体暴击伤害提高 10%",
            "309": "繁星竞技场\n2P: 使装备者的暴击率提高 8%。当装备者的当前暴击率大于等于 70% 时，普攻和战技造成的伤害提高 20%",
            "308": "生命的翁瓦克\n2P: 使装备者的能量恢复效率提高 5%。当装备者的速度大于等于 120 时，进入战斗时立刻使行动提前 40%",
            "307": "盗贼公国塔利亚\n2P: 使装备者的击破特攻提高 16%。当装备者的速度大于等于 145 时，击破特攻额外提高 20%",
            "306": "停转的萨尔索图\n2P: 使装备者的暴击率提高 8%。当装备者当前暴击率大于等于 50% 时，终结技和追加攻击造成的伤害提高 15%",
            "305": "星体差分机\n2P: 使装备者的暴击伤害提高 16%。当装备者的暴击伤害大于等于 120% 时，进入战斗后装备者的暴击率提高 60%，持续到施放首次攻击后结束",
            "304": "筑城者的贝洛伯格\n2P: 使装备者的防御力提高 15%。当装备者的效果命中大于等于 50% 时，防御力额外提高 15%",
            "303": "泛银河商业公司\n2P: 使装备者的效果命中提高 10%。同时提高装备者等同于当前效果命中 25% 的攻击力，最多提高 25%",
            "302": "不老者的仙舟\n2P: 使装备者的生命上限提高 12%。当装备者的速度大于等于 120 时，我方全体攻击力提高 8%",
            "301": "太空封印站\n2P: 使装备者的攻击力提高 12%。当装备者的速度大于等于 120 时，攻击力额外提高 12%"
        };


        document.addEventListener('DOMContentLoaded', function() {

            document.getElementById('closeAnnouncement').addEventListener('click', function() {
                document.getElementById('announcement').style.display = 'none';
            });


            const tabBtns = document.querySelectorAll('.tab-btn');
            const tabContents = document.querySelectorAll('.tab-content');

            tabBtns.forEach(btn => {
                btn.addEventListener('click', function() {
                    const tabId = this.getAttribute('data-tab');

                    tabBtns.forEach(b => {
                        b.classList.remove('active', 'bg-primary', 'text-white');
                        b.classList.add('text-dark');
                    });
                    this.classList.add('active', 'bg-primary', 'text-white');

                    tabContents.forEach(content => {
                        content.classList.add('hidden');
                        content.classList.remove('active');
                    });
                    document.getElementById(`${tabId}Tab`).classList.remove('hidden');
                    document.getElementById(`${tabId}Tab`).classList.add('active');
                });
            });

            const itemTypeSelect = document.getElementById('itemType');
            const starrailSection = document.getElementById('starrailSection');
            const lightconeSection = document.getElementById('lightconeSection');
            const otherItemsSection = document.getElementById('otherItemsSection');

            itemTypeSelect.addEventListener('change', function() {
                const selected = this.value;

                starrailSection.classList.add('hidden');
                lightconeSection.classList.add('hidden');
                otherItemsSection.classList.add('hidden');

                if (selected === 'starrail') {
                    starrailSection.classList.remove('hidden');
                } else if (selected === 'lightcone') {
                    lightconeSection.classList.remove('hidden');
                } else if (selected === 'other') {
                    otherItemsSection.classList.remove('hidden');
                }
            });

            const avatarActionSelect = document.getElementById('avatarAction');
            const avatarValueContainer = document.getElementById('avatarValueContainer');
            const avatarValueLabel = document.getElementById('avatarValueLabel');
            const avatarValueInput = document.getElementById('avatarValue');

            avatarActionSelect.addEventListener('change', function() {
                const action = this.value;

                if (action === 'get') {
                    avatarValueContainer.classList.add('hidden');
                } else {
                    avatarValueContainer.classList.remove('hidden');

                    if (action === 'level') {
                        avatarValueLabel.textContent = '等级 (1-80)';
                        avatarValueInput.min = 1;
                        avatarValueInput.max = 80;
                        avatarValueInput.value = 80;
                    } else if (action === 'rank') {
                        avatarValueLabel.textContent = '星魂 (0-6)';
                        avatarValueInput.min = 0;
                        avatarValueInput.max = 6;
                        avatarValueInput.value = 6;
                    } else if (action === 'talent') {
                        avatarValueLabel.textContent = '行迹 (1-12)';
                        avatarValueInput.min = 1;
                        avatarValueInput.max = 12;
                        avatarValueInput.value = 12;
                    }
                }
            });

            const relicA = document.getElementById('relicA');
            const relicD = document.getElementById('relicD');

            relicA.addEventListener('change', function() {
                const aValue = this.value;
                updateRelicDOptions(aValue);
                updateRelicEOptions(aValue, relicD.value);
                updateRelicEffect();
            });

            relicD.addEventListener('change', function() {
                updateRelicEOptions(relicA.value, this.value);
            });

            document.getElementById('relicBC').addEventListener('change', function() {
                updateRelicEffect();
            });

            function updateRelicDOptions(aValue) {
                relicD.innerHTML = '';

                if (aValue === '1') { // 外圈
                    const options = [{
                        value: '1',
                        text: '1 - 头部'
                    }, {
                        value: '2',
                        text: '2 - 手部'
                    }, {
                        value: '3',
                        text: '3 - 躯干'
                    }, {
                        value: '4',
                        text: '4 - 腿部'
                    }];

                    options.forEach(option => {
                        const opt = document.createElement('option');
                        opt.value = option.value;
                        opt.textContent = option.text;
                        relicD.appendChild(opt);
                    });
                } else if (aValue === '3') { // 内圈
                    const options = [{
                        value: '5',
                        text: '5 - 位面球'
                    }, {
                        value: '6',
                        text: '6 - 连接绳'
                    }];

                    options.forEach(option => {
                        const opt = document.createElement('option');
                        opt.value = option.value;
                        opt.textContent = option.text;
                        relicD.appendChild(opt);
                    });
                }
            }

            function updateRelicEOptions(aValue, dValue) {
                const relicE = document.getElementById('relicE');
                relicE.innerHTML = '';

                if (dValue === '1') { // 头部
                    const opt = document.createElement('option');
                    opt.value = '1';
                    opt.textContent = '1 - 固定生命值';
                    relicE.appendChild(opt);
                } else if (dValue === '2') { // 手部
                    const opt = document.createElement('option');
                    opt.value = '1';
                    opt.textContent = '1 - 固定攻击力';
                    relicE.appendChild(opt);
                } else if (dValue === '3') { // 躯干
                    const options = [{
                        value: '1',
                        text: '1 - 生命值百分比'
                    }, {
                        value: '2',
                        text: '2 - 攻击力百分比'
                    }, {
                        value: '3',
                        text: '3 - 防御百分比'
                    }, {
                        value: '4',
                        text: '4 - 暴击率'
                    }, {
                        value: '5',
                        text: '5 - 暴击伤害'
                    }, {
                        value: '6',
                        text: '6 - 治疗量'
                    }, {
                        value: '7',
                        text: '7 - 效果命中'
                    }];

                    options.forEach(option => {
                        const opt = document.createElement('option');
                        opt.value = option.value;
                        opt.textContent = option.text;
                        relicE.appendChild(opt);
                    });
                } else if (dValue === '4') { // 腿部
                    const options = [{
                        value: '1',
                        text: '1 - 生命值百分比'
                    }, {
                        value: '2',
                        text: '2 - 攻击力百分比'
                    }, {
                        value: '3',
                        text: '3 - 防御百分比'
                    }, {
                        value: '4',
                        text: '4 - 速度'
                    }];

                    options.forEach(option => {
                        const opt = document.createElement('option');
                        opt.value = option.value;
                        opt.textContent = option.text;
                        relicE.appendChild(opt);
                    });
                } else if (dValue === '5') { // 位面球
                    const options = [{
                        value: '1',
                        text: '1 - 生命值百分比'
                    }, {
                        value: '2',
                        text: '2 - 攻击力百分比'
                    }, {
                        value: '3',
                        text: '3 - 防御百分比'
                    }, {
                        value: '4',
                        text: '4 - 物伤加成'
                    }, {
                        value: '5',
                        text: '5 - 火伤加成'
                    }, {
                        value: '6',
                        text: '6 - 冰伤加成'
                    }, {
                        value: '7',
                        text: '7 - 雷伤加成'
                    }, {
                        value: '8',
                        text: '8 - 风伤加成'
                    }, {
                        value: '9',
                        text: '9 - 量子伤害加成'
                    }, {
                        value: '10',
                        text: '10 - 虚数伤害加成'
                    }];

                    options.forEach(option => {
                        const opt = document.createElement('option');
                        opt.value = option.value;
                        opt.textContent = option.text;
                        relicE.appendChild(opt);
                    });
                } else if (dValue === '6') { // 连接绳
                    const options = [{
                        value: '1',
                        text: '1 - 击破特攻'
                    }, {
                        value: '2',
                        text: '2 - 充能'
                    }, {
                        value: '3',
                        text: '3 - 生命值百分比'
                    }, {
                        value: '4',
                        text: '4 - 攻击力百分比'
                    }, {
                        value: '5',
                        text: '5 - 防御百分比'
                    }];

                    options.forEach(option => {
                        const opt = document.createElement('option');
                        opt.value = option.value;
                        opt.textContent = option.text;
                        relicE.appendChild(opt);
                    });
                }
            }

            function updateRelicEffect() {
                const aValue = relicA.value;
                const bcValue = document.getElementById('relicBC').value;
                const relicId = aValue + bcValue;
                const effectContainer = document.getElementById('relicEffect');

                if (relicEffects[relicId]) {
                    effectContainer.textContent = relicEffects[relicId];
                } else {
                    effectContainer.textContent = '未找到该遗器的效果信息';
                }
            }

            document.getElementById('generateBtn').addEventListener('click', function() {
                let code = '';
                let isValid = true;
                let warning = '';

                if (document.getElementById('relicTab').classList.contains('active')) {
                    const a = relicA.value;
                    const bc = document.getElementById('relicBC').value;
                    const d = relicD.value;
                    const e = document.getElementById('relicE').value;

                    const fElements = document.querySelectorAll('.relicF');
                    const xElements = document.querySelectorAll('.relicX');

                    const fValues = Array.from(fElements).map(el => el.value);
                    const xValues = Array.from(xElements).map(el => parseInt(el.value));

                    const xSum = xValues.reduce((sum, val) => sum + val, 0);
                    if (xSum < 8 || xSum > 9) {
                        isValid = false;
                        warning += `副属性强化次数总和必须在8-9之间，当前为${xSum}。`;
                    }

                    const uniqueF = new Set(fValues);
                    if (uniqueF.size !== fValues.length) {
                        isValid = false;
                        warning += ' 副属性不可重复。';
                    }

                    let mainToSubMap = {
                        // 躯干
                        '1': '4', // 生命值百分比
                        '2': '5', // 攻击力百分比
                        '3': '6', // 防御百分比
                        '4': '8', // 暴击率
                        '5': '9', // 暴击伤害
                        '6': '', // 治疗量
                        '7': '10', // 效果命中

                        // 腿部
                        '1': '4', // 生命值百分比
                        '2': '5', // 攻击力百分比
                        '3': '6', // 防御百分比
                        '4': '7', // 速度

                        // 位面球
                        '1': '4', // 生命值百分比
                        '2': '5', // 攻击力百分比
                        '3': '6', // 防御百分比
                        '4': '', // 物伤加成
                        '5': '', // 火伤加成
                        '6': '', // 冰伤加成
                        '7': '', // 雷伤加成
                        '8': '', // 风伤加成
                        '9': '', // 量子伤害加成
                        '10': '', // 虚数伤害加成

                        // 连接绳
                        '1': '12', // 击破特攻
                        '2': '', // 充能
                        '3': '4', // 生命值百分比
                        '4': '5', // 攻击力百分比
                        '5': '6' // 防御百分比
                    };

                    let conflict = false;
                    if (relicD.value !== '1' && relicD.value !== '2') {
                        const key = `${relicD.value}-${e}`;
                        const conflictValue = mainToSubMap[e];

                        if (conflictValue && fValues.includes(conflictValue)) {
                            isValid = false;
                            warning += ' 副属性不能与主属性相同。';
                            conflict = true;
                        }
                    }

                    if (isValid) {
                        const abc = a + bc;
                        let subAttrs = '';

                        for (let i = 0; i < fValues.length; i++) {
                            subAttrs += ` ${fValues[i]}:${xValues[i]}`;
                        }

                        code = `/relic 6${abc}${d} x1 l15 ${e}${subAttrs}`;
                    }

                    document.getElementById('relicWarning').textContent = warning;
                } else if (document.getElementById('itemsTab').classList.contains('active')) {
                    const itemType = itemTypeSelect.value;

                    if (itemType === 'starrail') {
                        const itemId = document.getElementById('starrailId').value;
                        const count = document.getElementById('starrailCount').value;
                        code = `/give ${itemId} x${count}`;
                    } else if (itemType === 'lightcone') {
                        const itemId = document.getElementById('lightconeId').value;
                        const level = document.getElementById('lightconeLevel').value;
                        const count = document.getElementById('lightconeCount').value;
                        const rank = document.getElementById('lightconeRank').value;
                        code = `/give ${itemId} l${level} x${count} r${rank}`;
                    } else if (itemType === 'other') {
                        const itemId = document.getElementById('otherItemId').value;
                        const count = document.getElementById('otherItemCount').value;
                        code = `/give ${itemId} x${count}`;
                    }
                }

                if (isValid) {
                    document.getElementById('codeResult').textContent = code;
                    document.getElementById('resultContainer').classList.remove('hidden');
                }
            });

            document.getElementById('generateAvatarCode').addEventListener('click', function() {
                const avatarId = document.getElementById('avatarId').value;
                const action = avatarActionSelect.value;

                let code = `/avatar ${avatarId} ${action}`;

                if (action !== 'get') {
                    const value = document.getElementById('avatarValue').value;
                    code += ` ${value}`;
                }

                document.getElementById('codeResult').textContent = code;
                document.getElementById('resultContainer').classList.remove('hidden');
            });

            document.querySelectorAll('.other-code-btn').forEach(btn => {
                btn.addEventListener('click', function() {
                    const code = this.getAttribute('data-code');
                    document.getElementById('codeResult').textContent = code;
                    document.getElementById('resultContainer').classList.remove('hidden');
                });
            });

            document.getElementById('copyBtn').addEventListener('click', function() {
                const codeText = document.getElementById('codeResult').textContent;
                navigator.clipboard.writeText(codeText).then(() => {
                    const originalText = this.innerHTML;
                    this.innerHTML = '<i class="fa fa-check mr-1"></i>已复制';

                    setTimeout(() => {
                        this.innerHTML = originalText;
                    }, 2000);
                });
            });

            updateRelicEffect();
            avatarActionSelect.dispatchEvent(new Event('change'));
        });
    </script>
</body>

</html>